﻿/* sys_now.c */

#include "fsl_common.h"
#include "fsl_clock.h"

/* sys_check_timeouts()要求移植者实现一个sys_now函数返回系统的当前时间(以ms为单位).
 * 该函数通过两次sys_now()返回的时间差判定定时时间是否达到, 从而调用相关函数处理定时事件.
 */
volatile unsigned int system_tick_num = 0u;

void sys_now_init(void)
{
    /* ke18f使用core_clk作为systick的时钟源. */
    SysTick_Config(CLOCK_GetFreq(kCLOCK_CoreSysClk)/50u); /* 20ms触发一次中断. */
}

unsigned int sys_now(void)
{
   return system_tick_num;
}

/* Systick定时器中断服务程序. */
void SysTick_Handler(void)
{
    system_tick_num += 20;
}

/* EOF. */

